'''
Created on 11-04-2014

@author: G
'''
import sys
import psycopg2





class Controlador():


    dataBaseName = 'carisma'
    userName = 'postgres'
    passwordName = 'jugador'
    
    
    def __init__(self,uid=None,username=None):
        
        self.con = None
        self.cur = None

        try:
            self.con = psycopg2.connect(database='carisma',user='postgres', password='jugador')
            self.cur = self.con.cursor()

        except psycopg2.DatabaseError, e:
            print 'Error conexion base de datos carisma %s' %e
            sys.exit(1)
            
        
        
    def cerrarConexion(self):
        self.cur.close()
        self.con.close()


    def get_datos_xyz(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT x,y,z FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)
     
     
            
    def get_datos_x(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT x FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)
            
    def get_datos_y(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT y FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)
            
    
    def get_datos_z(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT z FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)
            
    def get_datos_xy(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT x,y FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)
            
    def get_datos_xz(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT x,z FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)
            
            
    def get_datos_yz(self,magnetometro,tiempoInicio,tiempoTermino):
        
        sql = str("SELECT y,z FROM dato WHERE magnetometro_nombre='"+magnetometro+"' and fecha BETWEEN '"+str(tiempoInicio)+"' and '"+str(tiempoTermino)+" 24:00:00';")
        
        if(magnetometro==None):
            print "Magnetometro no ingresado"
            return
        
        if(tiempoInicio==None):
            print "Tiempo inicio no ingresado"
            return
            
        if(tiempoTermino==None):
            print "Tiempo termino no ingresado"
            return
            
        try:    
            self.cur.execute(sql)
            return self.cur.fetchall()
               
        except psycopg2.DatabaseError, e:      
            print 'Error %s' %e
            sys.exit(1)